package grape.sequence.service.generator.dbbased;

import lombok.Data;

/**
 * 不同的数据库实现该接口
 * Created by yangwei
 * Created at 2020/8/20 19:13
 */
public interface ISequenceDatabaseTypeGenerator {

    public static String tablePrefix = "seq_";

    @Data
    public static class SequenceResult{
        /**
         * 生成的值
         */
        private String nextValue;
        /**
         * 是否首次生成
         */
        private boolean isFirst = false;
    }

    /**
     * 是否匹配该类型
     * @param databaseType
     * @return
     */
    boolean support(String databaseType);

    /**
     * 获取下一个序列值
     * @param suffix
     * @return
     */
    SequenceResult nextSeqValue(String suffix,Integer startValue, Integer stepValue);

    String currentSeqValue(String suffix);
}
